package jmini.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * 注释Field
 * @author Jason Ma
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface AP_ONE2MANY{
	
	/**
	 * 该字段关联的对方表的表名
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public Class modelType();
	/**
	 * 通过本表的id字段关联对方表的字段
	 * 一对一时本表对应外表id的字段名
	 * @return
	 */
	public String fieldName();
	
	/**
	 * 关联时使用的where显示条件，不带"WHERE"关键字
	 * @return
	 */
	public String sqlWhere() default "";
	/**
	 * 关联时使用的order by显示条件，不带"ORDER BY"关键字
	 * @return
	 */
	public String sqlOrderBy() default "";
	/**
	 * 外键关联特殊情况一对一，返回一个DataModel，而非List<DataModel>
	 * @return
	 */
	public boolean isOne2One() default false;
	
}
